home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MEDICAL / 2608A.ZIP / GP.ZIP / PATREC.SRC < prev    next >
Text File  |  1990-11-06  |  23KB  |  1,037 lines

  1. ;\|
  2. ;PATREC.SRC     Translated from PATREC.EDT by Roger Mathew's EDT2SRC Ver 4.11
  3. ;REST     01:11:52 PM  19/ 4/90   |
  4. FIELDS:
  5.     define(td|s|8||)
  6.     define(temp1|s|8||)
  7.     define(mem_alpha|a|12||)
  8.     define(temp2|s|8||)
  9.     define(temp3|s|8||)
  10.     define(temp4|s|8||)
  11.     define(temp_doc|a|20||)
  12.     define(IMPOS|A|4||)
  13.     define(S1|A|1||)
  14.     define(P.2.0.2|N|2||)
  15.     define(IMCTR|N|2||)
  16.     define(MENU_REC|A|65||15)
  17.     define(REC_CHOICE|N|2||)
  18.     define(DATNUM|N|7||)
  19.     define(CTRDAT|N|2||)
  20.     define(NEXT|A|1||)
  21.     define(OFF|A|4||)
  22.     define(B8|A|8||)
  23.     define(N5.2|N|5|2|)
  24.     define(N5|N|5||)
  25.     define(A5|A|5||)
  26.     define(AGE|N|5|2|)
  27.     define(TD|S|8||)
  28.     define(REC.NUM|N|8|0|)
  29.     define(PUNC1|N|2|0|)
  30.     define(TM|A|27||12)
  31.     define(CHOICE|N|2|0|)
  32.     define(YES.NO|A|1||)
  33.     define(AB|A|5||)
  34.     define(CODCTR|N|1||)
  35.     define(A1|A|2||)
  36.     define(DATCTR|A|2||)
  37.     define(PATCTR|N|4|0|)
  38.     define(YN|A|1||)
  39.     define(DAY|A|2||)
  40.     define(TD1|A|8||)
  41.     define(RECPOS|A|4||)
  42.     define(LAST_ERROR|N|2||)
  43.     define(RECORDS|N|8||)
  44.     define(CODRECS|N|8||)
  45.     define(AOD|A|1||10)
  46.     define(MN|A|30||10)
  47.     define(DO|A|8||10)
  48.     define(QU|A|10||10)
  49.     define(DS|A|30||10)
  50.     define(QTY|N|3||10)
  51.     define(ISN|N|3||10)
  52.     define(CTR|N|2||)
  53.     define(CTR2|N|2||)
  54.     open(PATIENT||1|EXIT2)
  55.     open(RP||0|EXIT2)
  56.     open(ABBREV||0|EXIT2)
  57.     open(PROCEDE||0|exit2)
  58.     open(GPSETUP||0|EXIT2)
  59.     open(RECALLS||1|EXIT2)
  60.     open(IMDATE||1|EXIT2)
  61.     open(PAEDS||1|EXIT2)
  62.     open(DIABETIC||1|EXIT2)
  63.     open(MEMORY||0|EXIT2)
  64.     date(TD|G)
  65.     trap(L|I)
  66. norn_ret:
  67.     find(E|RECORD.NUMBER|NORN|N)
  68.     find(B|HEADING|EXIT2|)
  69.     REC.NUM = (RECORD.NUMBER)
  70.     clr(PATIENT|B)
  71. ;BEGINNING OF AGE SEX REGISTER|
  72. PATIENT:
  73.     mount(PATIENT|S)
  74. PAT.NAME:
  75.     RECORDS =nrc(PATIENT)
  76.     gosub PAT.TRAP
  77.     AGE = (0)
  78.     clrlne(1|25)
  79.     enter(PATIENT.NAME|" ABCDEFGHIJKLMNOPQRSTUVWXYZ,'-"||CLEARPAT|Y|Y|N|||N)
  80.     PUNC1 =loc(","|PATIENT.NAME|1||14)
  81.     P.2.0.2 = (PUNC1+1)
  82.     if PUNC1 = (0) reent
  83.     S1 =mid(PATIENT.NAME|P.2.0.2|1|)
  84.     if S1 <> ("") reent
  85.     PUNC1 = (0)
  86.     P.2.0.2 = (0)
  87.     S1 = ("")
  88.     ifdup(PATIENT.NAME|S|DUP.NAME)
  89. RESS:
  90.     enter(ADDRESS1||||Y|Y|N|||N)
  91.     lnum(PATCTR)
  92.     S1 =mid(ADDRESS1|1|1|)
  93.     if S1 = ("@") do
  94.         {
  95.         AB = (ADDRESS1)
  96.         gosub LETABV
  97.         AB = ("")
  98.         ADDRESS1 = (ABBREV.NAME)
  99.         gosub CLRABV
  100.         goto RESS
  101.         }
  102. AREA:
  103.     enter(AREA||||Y|Y|N|||N)
  104.     lnum(PATCTR)
  105.     S1 =mid(AREA|1|1|)
  106.     if S1 = ("@") do
  107.         {
  108.         AB = (AREA)
  109.         gosub LETABV
  110.         AB = ("")
  111.         AREA = (ABBREV.NAME)
  112.         gosub CLRABV
  113.         }
  114.     enter(POSTCODE||||Y|Y|N|||N)
  115.     enter(DATE.OF.BIRTH||||N|Y|N|||N)
  116.     if DATE.OF.BIRTH > (TD) reent
  117.     if DATE.OF.BIRTH < (TD-36500) reent
  118.     N5.2 = (TD-DATE.OF.BIRTH/365)
  119.     AGE = (N5.2)
  120. SEX:
  121.     enter(MARITAL.STATUS|"MS"|||Y|Y|N|||N)
  122.     enter(SEX|"MF"|||Y|Y|N|||N)
  123.     enter(DISPENSING|"YNX"|||Y|Y|N|||N)
  124.     enter(DOCTOR|"1234"|||N|Y|N|||N)
  125.     enter(NHS.NUM||||Y|Y|N|||N)
  126.     enter(PAT.REG||||N|Y|N|||N)
  127.     enter(PAT_FLAG|" Y"|||Y|N|N|||N)
  128.     enter(NOTES.REC||||N|Y|N|||N)
  129.     enter(TELEPHONE||||N|N|N|||N)
  130.     enter(SEEN||||N|Y|N|||N)
  131.     if DATE_SEEN > (SEEN) then SEEN = (DATE_SEEN)
  132.     DATE_SEEN = (SEEN)
  133.     enter(SMOKER|" Y"|ATTEND_HLP||Y|Y|N|||N)
  134.     enter(VISIT|" YSV"|VIS_HELP||Y|Y|N|||N)
  135. SAVE.PAT:
  136.     gosub TRAPS
  137.     trap(O|G|FILE_ERROR)
  138.     LAST.UPDATE = (TD)
  139.     if RECORD.NUMBER > (0) goto SAVE.PATX
  140.     RECORD.NUMBER = (REC.NUM+1)
  141. SAVE.PPPX:
  142.     save(PATIENT|Y|Y|PAT.NAME)
  143. SAVE.QQQX:
  144.     REC.NUM = (REC.NUM+1)
  145.     trap(O|D)
  146.     goto PAT.NAME
  147. SAVE.PATX:
  148.     save(PATIENT|Y|Y|PAT.NAME)
  149.     goto PAT.NAME
  150. DELETE:
  151.     trap(L|G|DEL.LOCK)
  152.     pmsg(@R;"Delete all records relating to this patient -Y/N ?"|1|25|N|N|S|YES.NO)
  153.     clrlne(1|25)
  154.     if YES.NO <> ("Y") goto PAT.NAME
  155. DLT.RP:
  156.     RP.REF = (RECORD.NUMBER)
  157.     find(M|RP.REF|DEL.CODE|)
  158.     del(RP|N)
  159.     goto DLT.RP
  160. DEL.CODE:
  161.     COD.REF = (RECORD.NUMBER)
  162.     find(M|COD.REF|DEL_IM|)
  163.     del(RECALLS|N)
  164. DEL_IM:
  165.     IMDATE.COD = (RECORD.NUMBER)
  166.     find(M|IMDATE.COD|DEL_P|)
  167.     del(IMDATE|N)
  168. DEL_P:
  169.     P_COD = (RECORD.NUMBER)
  170.     find(M|P_COD|DEL_DIAB|)
  171.     del(PAEDS|N)
  172. DEL_DIAB:
  173.     DIAB_REF = (RECORD.NUMBER)
  174.     find(M|DIAB_REF|DEL_PROC|)
  175.     del(DIABETIC|N)
  176. DEL_PROC:
  177.     PROC_REF = (RECORD.NUMBER)
  178.     find(M|PROC_REF|DLT.PAT|)
  179.     del(PROCEDE|N)
  180. DLT.PAT:
  181.     del(PATIENT|N)
  182.     trap(L|G|PAT.LOCK)
  183.     goto PAT.NAME
  184. DUP.NAME:
  185.     if RECORD.NUMBER > (0) goto RETDUP
  186.     bell
  187.     pmsg(@R;"This name is already on file!"|1|25|Y|N|S|)
  188.     clrlne(1|25)
  189.     clr(PATIENT|B)
  190. RETDUP:
  191.     ret
  192. ;HERE ARE THE RP ENTRY PROCEDURES.|
  193. AGE.REL:
  194.     N5.2 = (TD-DATE.OF.BIRTH/365)
  195.     AGE = (N5.2)
  196.     ret
  197. CLEARPAT:
  198.     clr(PATIENT|B)
  199.     AGE = (" ")
  200.     goto PAT.NAME
  201. CODE:
  202.     trap(1|G|PATIENT)
  203.     mount(COD|S)
  204. COD.NAME:
  205. COD.PATX:
  206.     CODRECS =nrc(RECALLS)
  207.     gosub PAT.TRAP
  208.     trap(T|I)
  209.     trap(1|G|PATIENT)
  210.     trap(J|G|PATIENT)
  211.     trap(S|I)
  212.     trap(C|G|CLCODS)
  213.     trap(L|G|PAT.LOCKCO)
  214.     trap(D|I)
  215.     clrlne(1|25)
  216.     clr(RECALLS|B)
  217.     clr(IMDATE|B)
  218.     clr(PAEDS|B)
  219.     trap(R|S|REL_REC)
  220.     enter(PATIENT.NAME|||CLCODS|Y|N|N|||N)
  221.     trap(R|D)
  222. COD.RETURN:
  223.     find(G|PATIENT.NAME|COD.NAME)
  224.     IMDATE.COD = (RECORD.NUMBER)
  225.     find(M|IMDATE.COD|NO_IM|)
  226.     P_COD = (RECORD.NUMBER)
  227.     find(M|P_COD|NODATE|)
  228. NODATE:
  229.     COD.REF = (RECORD.NUMBER)
  230.     find(M|COD.REF|CCDA|)
  231. CCDA:
  232.     gosub COD.TRAP
  233. CD2:
  234. IMSTART:
  235.     for(CODCTR|1|9|1)
  236.         {
  237.         trap(Q|G|MENU)
  238.         enter(COD[CODCTR]|||COD.NAME|Y|Y|N|||N)
  239.         enter(COD.D[CODCTR]|||COD.NAME|N|Y|N|||N)
  240.         if CODCTR = (1) do
  241.             {
  242.             if COD.D[1] <> (0) do
  243.                 {
  244.                 trap(U|I)
  245.                 enter(SM_DATE||||N|N|N|||N)
  246.                 enter(WHERE|" SFHO"|||Y|Y|N|||N)
  247.                 trap(U|D)
  248.                 }
  249.             }
  250.         if COD[CODCTR] = ("****") do
  251.             {
  252.             COD.D[CODCTR] = (0)
  253.             }
  254.         if CODCTR = (3) do
  255.             {
  256.             if COD.D[CODCTR] <> (0) do
  257.                 {
  258.                 IMDATE.COD = (COD.REF)
  259.                 enter(IMDATE1||||N|Y|N|||N)
  260.                 enter(IMDATE2||||N|Y|N|||N)
  261.                 enter(IMDATE3||||N|Y|N|||N)
  262.                 enter(IMDATE4||||N|Y|N|||N)
  263.                 enter(IMDATE5||||N|Y|N|||N)
  264.                 }
  265.             }
  266.         if CODCTR = (5) do
  267.             {
  268.             if COD.D[CODCTR] <> (0) do
  269.                 {
  270.                 P_COD = (COD.REF)
  271.                 enter(PDATE1||||N|Y|N|||N)
  272.                 enter(PDATE2||||N|Y|N|||N)
  273.                 enter(PDATE3||||N|Y|N|||N)
  274.                 enter(PDATE4||||N|Y|N|||N)
  275.                 }
  276.             }
  277.         if CODCTR = (9) goto SAVE.COD
  278.         }
  279. SAVE.COD:
  280.     pmsg("SAVING RECORD"|30|22|N|N|S|)
  281.     if P_COD > (0) then save(PAEDS|N|Y)
  282.     if IMDATE.COD > (0) then save(IMDATE|N|Y)
  283.     COD.REF = (RECORD.NUMBER)
  284.     COD.PAT.NAME = (PATIENT.NAME)
  285.     save(RECALLS|N|Y)
  286.     clr(PATIENT|B)
  287.     clrlne(1|22)
  288.     goto COD.NAME
  289. DELETE.COD:
  290.     goto COD.NAME
  291. CLEARCOD:
  292.     clr(RECALLS|B)
  293.     clr(IMDATE|B)
  294.     clr(PAEDS|B)
  295.     goto COD.NAME
  296. CLCODS:
  297.     clr(PATIENT|B)
  298.     clr(RECALLS|B)
  299.     AGE = ("")
  300.     goto COD.NAME
  301. COD.TRAP:
  302.     trap(T|I)
  303.     trap(7|I)
  304.     trap(9|I)
  305.     trap(J|G|PATIENT)
  306.     trap(S|G|SAVE.COD)
  307.     trap(C|G|CLEARCOD)
  308.     trap(D|I)
  309.     trap(N|I)
  310.     trap(M|I)
  311.     trap(F|I)
  312.     trap(B|I)
  313.     trap(G|I)
  314.     trap(U|D)
  315.     trap(L|G|COD.LOCK)
  316.     trap(H|S|RECMENU)
  317.     ret
  318. REL.COD:
  319.     RECORD.NUMBER = (COD.REF)
  320.     find(M|RECORD.NUMBER|CODRETT|)
  321. CODRETT:
  322.     ret
  323. TRAPS:
  324.     trap(Q|G|EXIT)
  325.     trap(3|I)
  326.     trap(S|I)
  327.     trap(D|I)
  328.     trap(H|I)
  329.     trap(L|D)
  330.     trap(T|I)
  331.     trap(R|I)
  332.     trap(F|I)
  333.     trap(N|I)
  334.     trap(M|I)
  335.     trap(B|I)
  336.     trap(G|I)
  337.     trap(C|I)
  338.     trap(J|I)
  339.     trap(U|D)
  340.     trap(W|D)
  341.     trap(1|I)
  342.     ret
  343. CLEARALL:
  344.     clr(PATIENT|B)
  345.     clr(RP|B)
  346.     ret
  347. FIELDCLR:
  348.     S1 = ("")
  349.     AGE = (0)
  350.     AB = ("")
  351.     PATCTR = (0)
  352.     B8 = ("")
  353.     N5 = (0)
  354.     ret
  355. PAT.TRAP:
  356.     trap(H|D)
  357.     trap(T|G|patsum)
  358.     trap(O|D)
  359.     trap(J|G|CODE)
  360.     trap(S|I)
  361.     trap(R|S|AGE.REL)
  362.     trap(F|D)
  363.     trap(N|D)
  364.     trap(M|D)
  365.     trap(B|D)
  366.     trap(G|D)
  367.     trap(C|G|CLEARPAT)
  368.     trap(D|G|DELETE)
  369.     trap(Q|G|EXIT)
  370.     trap(3|I)
  371.     trap(U|D)
  372.     trap(L|G|PAT.LOCK)
  373.     ret
  374. RP.EXIT:
  375.     gosub TRAPS
  376.     goto EXIT
  377. LETABV:
  378.     ABBREVIATION = (AB)
  379.     find(M|ABBREVIATION|GET.ABBREV)
  380.     goto RET
  381. GET.ABBREV:
  382.     gosub LETTRAP
  383.     saves(1)
  384.     trap(Q|I)
  385.     window(10|14|5|60)
  386. pmsg("ABBREVIATION :";ABBREVIATION|1|2|N|N|S|)
  387.     pmsg("ENTER ABBREV.NAME:"|1|4|N|N|S|ABBREV.NAME)
  388.     if ABBREV.NAME = ("") goto NOABV
  389.     save(ABBREV|N|N|GET.ABBREV)
  390.     find(M|ABBREVIATION||)
  391. NOABV:
  392.     redsp(1)
  393.     trap(Q|G|EXIT)
  394. RET:
  395.     ret
  396. CLRABV:
  397.     clr(ABBREV|B)
  398.     clr(RPABBREV|B)
  399.     ret
  400. LETTRAP:
  401.     trap(D|I)
  402.     trap(B|I)
  403.     trap(G|I)
  404.     trap(F|I)
  405.     trap(R|I)
  406.     trap(N|I)
  407.     trap(M|I)
  408.     trap(J|I)
  409.     trap(U|I)
  410.     trap(W|I)
  411.     trap(C|I)
  412.     trap(S|I)
  413.     trap(I|D)
  414.     ret
  415. MENU:
  416.     TM[1] = (" 1 - AGE-SEX/RP       01011")
  417.     TM[2] = (" 2-  MEMO             01022")
  418.     TM[3] = (" 3 - EXIT             01033")
  419.     TM[4] = (" 4 - APPOINTS         01044")
  420.     TM[5] = (" 5 - CLINICS          01055")
  421.     menu(30|20|6|23|0|TM|CHOICE|5|22|MENU||"-------GP MENU--------"|N)
  422.     on(CHOICE|G|PAT_RP;MEMO;EXIT3;APS;CLINS|MENU)
  423. RECALLSX:
  424.     run("RECALLS")
  425. APS:
  426.     run("fappoint")
  427. CLINS:
  428.     run("CLIN_MEN")
  429. PAT_RP:
  430.     run("PATIENT")
  431. MEMO:
  432.     if PATIENT.NAME = ("") goto NOMEMO
  433.     find(B|MEM_NAME|NOMEMO|)
  434.     MEM_NAME = (PATIENT.NAME)
  435.     save(MEMORY|N|Y)
  436. NOMEMO:
  437.     run("MEMO")
  438. TRACE:
  439.     break
  440.     ret
  441. EXIT:
  442.     goto MENU
  443. EXIT2:
  444.     pmsg("FILE LOCKED BY ANOTHER STATION"|10|24|Y|N|S|)
  445.     clrlne(1|24)
  446.     run("recmenu")
  447. PAT.LOCK:
  448.     pmsg("RECORD IN USE - PRESS RETURN AND TRY AGAIN LATER"|10|24|Y|N|S|)
  449.     clr(PATIENT|B)
  450.     clrlne(1|24)
  451.     goto PAT.NAME
  452. PAT.LOCKCO:
  453.     pmsg("RECORD.IN USE - PRESS RETURN AND TRY AGAIN LATER"|10|24|Y|N|S|)
  454.     clr(RECALLS|B)
  455.     clr(PATIENT|B)
  456.     clrlne(1|24)
  457.     goto COD.NAME
  458. COD.LOCK:
  459.     pmsg("RECORD IN USE - PRESS RETURN AND TRY AGAIN LATER"|10|24|Y|N|S|)
  460.     clr(PATIENT|B)
  461.     clr(RECALLS|B)
  462.     clrlne(1|24)
  463.     goto CCDA
  464. DEL.LOCK:
  465.     pmsg("A RECORD IS IN USE FOR THIS PATIENT - TRY AGAIN LATER"|10|24|Y|N|S|)
  466.     clr(PATIENT|B)
  467.     clr(RP|B)
  468.     clr(RECALLS|B)
  469.     clrlne(1|24)
  470.     goto DELETE
  471. EXIT3:
  472.     run("recmenu")
  473. FILE_ERROR:
  474.     lferrn(LAST_ERROR)
  475.     if LAST_ERROR = (61) do
  476.         {
  477.         REC.NUM = (REC.NUM+1)
  478.         RECORD.NUMBER = (REC.NUM)
  479.         save(PATIENT|N|Y)
  480.         goto SAVE.QQQX
  481.         }
  482.     else
  483.         {
  484.         if LAST_ERROR = (5) do
  485.             {
  486.             pmsg("DUPLICATE PATIENT NAME - START AGAIN"|20|24|Y|N|S|)
  487.             run("PATIENT")
  488.             }
  489.         else
  490.             {
  491.             pmsg("last error";LAST_ERROR|40|24|N|N|S|)
  492.             goto PAT.NAME
  493.             }
  494.         }
  495. ;|
  496. ;|
  497. RECMENU:
  498.     if CODCTR = (1) do
  499.         {
  500.         MENU_REC[1] = (" A - (1) NEGATIVE                                         0101A")
  501.         MENU_REC[2] = (" B - (2) NEGATIVE 1/2 INFLAMMATORY CHANGES                0102B")
  502.         MENU_REC[3] = (" C - (3) NEGATIVE PREV CN1 AND CN2 AFTER TREATMENT        0103C")
  503.         MENU_REC[4] = (" D - (4) POSITIVE CN1 AND CN2                             0104D")
  504.         MENU_REC[5] = (" E - (HYS) HYSTERECTOMY RECALL DATE 15/12/99              0105E")
  505.         MENU_REC[6] = (" F - (DNA1) DID NOT ATTEND 1st RECALL                     0106F")
  506.         MENU_REC[7] = (" G - (DNA2) DID NOT ATTEND 2nd RECALL                     0107G")
  507.         MENU_REC[8] = (" H - (REF) REFUSED SMEAR                                  0108H")
  508.         MENU_REC[9] = (" I - (VIR) VIRGIN                                         0109I")
  509.         MENU_REC[10] = (" J - (****) CHECK NOTES AND UPDATE                        0110J")
  510.         MENU_REC[11] = (" K - (DONE) SMEAR DONE RESULT ?                           0111K")
  511.         menu(1|13|12|59||MENU_REC|REC_CHOICE|11|58|REC_MEN_R||"              SMEAR CODES     "|N)
  512.         if REC_CHOICE = (1) then COD[CODCTR] = ("1")
  513.         if REC_CHOICE = (2) then COD[CODCTR] = ("2")
  514.         if REC_CHOICE = (3) then COD[CODCTR] = ("3")
  515.         if REC_CHOICE = (4) then COD[CODCTR] = ("4")
  516.         if REC_CHOICE = (5) do
  517.             {
  518.             COD[CODCTR] = ("HYS")
  519.             COD.D[CODCTR] = (2451528)
  520.             SM_DATE = (2451528)
  521.             ret
  522.             }
  523.         if REC_CHOICE = (6) then COD[CODCTR] = ("DNA1")
  524.         if REC_CHOICE = (7) then COD[CODCTR] = ("DNA2")
  525.         if REC_CHOICE = (8) do
  526.             {
  527.             COD[CODCTR] = ("REF")
  528.             COD.D[CODCTR] = (2451528)
  529.             ret
  530.             }
  531.         if REC_CHOICE = (9) do
  532.             {
  533.             COD[CODCTR] = ("VIR")
  534.             COD.D[CODCTR] = (2451528)
  535.             ret
  536.             }
  537.         if REC_CHOICE = (10) then COD[CODCTR] = ("****")
  538.         if REC_CHOICE = (11) then COD[CODCTR] = ("DONE")
  539.         }
  540.     if CODCTR = (2) do
  541.         {
  542.         MENU_REC[1] = (" A - (P1) FP1001 PILL ETC           0101A")
  543.         MENU_REC[2] = (" B - (P2) FP1001   COIL             0102B")
  544.         MENU_REC[3] = (" C - (P3) FP1003                    0103C")
  545.         menu(1|5|4|37||MENU_REC|REC_CHOICE|3|36|REC_MEN_R||"  CONTRACEPTION"|N)
  546.         if REC_CHOICE = (1) then COD[CODCTR] = ("P1")
  547.         if REC_CHOICE = (2) then COD[CODCTR] = ("P2")
  548.         if REC_CHOICE = (3) then COD[CODCTR] = ("P3")
  549.         }
  550.     if CODCTR = (3) do
  551.         {
  552.         MENU_REC[1] = (" A - (1) FIRST TRIPLE DONE                 0101A")
  553.         MENU_REC[2] = (" B - (2) SECOND TRIPLE DONE                0102B")
  554.         MENU_REC[3] = (" C - (3) THIRD TRIPLE DONE                 0103C")
  555.         MENU_REC[4] = (" D - (M) MMR DONE                          0104D")
  556.         MENU_REC[5] = (" E - (REF) REFUSED ALL only                0105E")
  557.         MENU_REC[6] = (" F - FIRST TRIPLE DUE                      0106F")
  558.         MENU_REC[7] = (" G - (B) PRE-SCHOOL BOOSTER DONE           0107G")
  559.         menu(1|10|8|44||MENU_REC|REC_CHOICE|7|43|REC_MEN_R||"IMMUNISATION RECALL"|N)
  560.         if REC_CHOICE = (1) do
  561.             {
  562.             COD[CODCTR] = ("1")
  563.             COD.D[CODCTR] = (DATE.OF.BIRTH+84)
  564.             }
  565.         if REC_CHOICE = (2) do
  566.             {
  567.             COD[CODCTR] = ("2")
  568.             COD.D[CODCTR] = (DATE.OF.BIRTH+112)
  569.             }
  570.         if REC_CHOICE = (3) do
  571.             {
  572.             COD[CODCTR] = ("3")
  573.             COD.D[CODCTR] = (DATE.OF.BIRTH+456)
  574.             }
  575.         if REC_CHOICE = (4) do
  576.             {
  577.             COD[CODCTR] = ("M")
  578.             COD.D[CODCTR] = (DATE.OF.BIRTH+1642)
  579.             }
  580.         if REC_CHOICE = (5) do
  581.             {
  582.             COD[CODCTR] = ("REF")
  583.             COD.D[CODCTR] = (2451528)
  584.             }
  585.         if REC_CHOICE = (6) do
  586.             {
  587.             COD[CODCTR] = ("")
  588.             COD.D[CODCTR] = (DATE.OF.BIRTH+56)
  589.             }
  590.         if REC_CHOICE = (7) do
  591.             {
  592.             COD[CODCTR] = ("B")
  593.             COD.D[CODCTR] = (2451528)
  594.             }
  595.         }
  596. REC_MEN_R:
  597.     ret
  598. REL_REC:
  599.     trap(R|I)
  600.     IMDATE.COD = (RECORD.NUMBER)
  601.     find(M|IMDATE.COD|NODATEXX|)
  602.     P_COD = (IMDATE.COD)
  603.     find(M|P_COD|NODATEXXP|)
  604. NODATEXXXX:
  605.     COD.REF = (RECORD.NUMBER)
  606.     find(M|COD.REF|REL_REC_T|)
  607. REL_RECTT:
  608.     trap(R|S|REL_REC)
  609.     ret
  610. NODATEXX:
  611.     clr(IMDATE|B)
  612.     goto NODATEXXXX
  613. NODATEXXP:
  614.     clr(PAEDS|B)
  615.     goto NODATEXXXX
  616. REL_REC_T:
  617.     clr(RECALLS|B)
  618.     goto REL_RECTT
  619. CLEARXALL:
  620.     clr(RP|B)
  621.     clr(RECALLS|B)
  622.     clr(IMDATE|B)
  623.     clr(PAEDS|B)
  624.     clrmem(AOD|10)
  625.     clrmem(MN|10)
  626.     clrmem(DO|10)
  627.     clrmem(QU|10)
  628.     clrmem(DS|10)
  629.     clrmem(QTY|10)
  630.     clrmem(ISN|10)
  631.     ret
  632. ENDIT:
  633.     enter(PATIENT.NAME||||N|N|N|||N)
  634.     gosub CLEARXALL
  635.     mount(PATIENT|S)
  636.     find(M|RECORD.NUMBER|PAT.NAME|)
  637.     goto PAT.NAME
  638. NO_IM:
  639.     IMDATE.COD = (0)
  640.     goto NODATE
  641. ATTEND_HLP:
  642.     saves(1)
  643.     window(1|12|2|79)
  644.     pmsg("Enter a blank here or a Y if the patient attended a new patient consultation"|1|1|Y|N||)
  645.     redsp(1)
  646.     ret
  647. VIS_HELP:
  648.     saves(1)
  649.     window(1|12|3|79)
  650.     pmsg("Enter a Y if the patient wants a visit (75+) or a consultation (<75)."|1|1|N|N||)
  651.     pmsg("Leave S and V well alone"|1|2|Y|N|S|)
  652.     redsp(1)
  653.     ret
  654. patsum:
  655.     pmsg("Do you want the print out of details? Y/N :"|10|23|y|n|s|yn)
  656.     if yn <> ("Y") do
  657.         {
  658.         clrlne(1|23)
  659.         goto pat.name
  660.         }
  661.     clrlne(1|23)
  662.     date(td|g)
  663.     pchr(p|4)
  664.     mount(new|r|p|)
  665.     pset(128|66|60)
  666.     pchr(p|1)
  667.     find(m|record.number|patsum|)
  668.     temp_doc = (rpdoctor[doctor])
  669.     pfmt(1|||n|n|)
  670.     pfmt(2|||n|n|)
  671.     pblnk(1)
  672.     pfmt(3|||n|n|)
  673.     pfmt(4|||n|n|)
  674.     pfmt(5|||n|n|)
  675.     pblnk(1)
  676.     pfmt(6|||n|n|)
  677.     pfmt(7|||n|n|)
  678.     P_COD = (RECORD.NUMBER)
  679.     find(M|P_COD|NEXT7|)
  680.     TEMP1 = (PDATE1)
  681.     TEMP2 = (PDATE2)
  682.     TEMP3 = (PDATE3)
  683.     TEMP4 = (PDATE4)
  684. NEXT7:
  685.     cod.ref = (record.number)
  686.     find(m|cod.ref|next|)
  687. next:
  688.     pfmt(8|||n|n|)
  689.     pfmt(9|||n|n|)
  690.     pfmt(10|||n|n|)
  691.     pfmt(11|||n|n|)
  692.     pfmt(12|||n|n|)
  693.     pfmt(13|||n|n|)
  694.     pfmt(14|||n|n|)
  695.     pfmt(15|||n|n|)
  696.     pfmt(16|||n|n|)
  697.     pblnk(1)
  698.     pfmt(17|||n|n|)
  699.     pfmt(18|||n|n|)
  700.     imdate.cod = (record.number)
  701.     find(m|imdate.cod|next1|)
  702. next1:
  703.     pfmt(19|||n|n|)
  704.     pfmt(20|||n|n|)
  705.     pfmt(21|||n|n|)
  706.     pfmt(22|||n|n|)
  707.     pfmt(23|||n|n|)
  708.     pblnk(1)
  709.     pfmt(24|||n|n|)
  710.     pfmt(25|||n|n|)
  711.     rp.ref = (record.number)
  712.     find(m|rp.ref|next2|)
  713. loop:
  714.     pfmt(26|||n|n|)
  715.     find(n|rp|next2|)
  716.     if rp.ref <> (record.number) goto next2
  717.     goto loop
  718. next2:
  719.     pblnk(1)
  720.     pfmt(27|||n|n|)
  721.     pfmt(28|||n|n|)
  722.     diab_ref = (record.number)
  723.     find(m|diab_ref|next3|)
  724.     if CHECK_TYPE = (1) then MEM_ALPHA = ("DIABETIC")
  725.     if CHECK_TYPE = (2) then MEM_ALPHA = ("OVER 75")
  726.     if CHECK_TYPE = (3) then MEM_ALPHA = ("NEW PATIENT")
  727.     if CHECK_TYPE = (4) then MEM_ALPHA = ("BP")
  728.     if CHECK_TYPE = (6) then MEM_ALPHA = ("MINOR SURG")
  729.     if CHECK_TYPE = (7) then MEM_ALPHA = ("WELL PERSON")
  730.     if CHECK_TYPE = (10) then MEM_ALPHA = ("THREE YR")
  731.     pfmt(29|||n|n|)
  732.     goto next4
  733. next3:
  734.     pfmt(30|||n|n|)
  735. next4:
  736.     pblnk(1)
  737.     pfmt(31|||n|n|)
  738.     pfmt(32|||n|n|)
  739.     proc_ref = (record.number)
  740.     find(m|proc_ref|next5|)
  741.     pfmt(33|||n|n|)
  742.     pfmt(34|||n|n|)
  743.     pfmt(35|||n|n|)
  744.     pfmt(36|||n|n|)
  745.     pfmt(37|||n|n|)
  746.     pfmt(38|||n|n|)
  747. next5:
  748.     ptof
  749.     clr(diabetic|b)
  750.     clr(imdate|b)
  751.     clr(paeds|b)
  752.     clr(recalls|b)
  753.     clr(rp|b)
  754.     clr(procede|b)
  755.     temp_doc = ("")
  756.     temp1 = (0)
  757.     temp2 = (0)
  758.     temp3 = (0)
  759.     temp4 = (0)
  760.     mem_alpha = ("")
  761.     mount(patient|s||)
  762.     goto pat.name
  763. norn:
  764.     patient.name = ("SURNAME, CHRISTIAN NAME")
  765.     record.number = (1)
  766.     save(patient|n|y|)
  767.     goto norn_ret
  768. \STPATIENT 
  769.  
  770.                         AGE SEX REGISTER AND RECALLS
  771.               ┌────────────────────────────────────────────────────┐
  772.               │ Pat.Name :&                          <             │
  773.               │ Address @:&                     <                  │
  774.               │ Area    @:&                                        │
  775.               │ Postcode :&                                        │
  776.               │ Date.o.b.:&         <                              │
  777.               │ Mar/Sing.:&                                        │
  778.               │ Sex      :&                                        │
  779.               │ Disp.?   :&<(YNX)                    Age:&         │
  780.               │ Doctor   :&             Sent for 3yr/75+:&         │
  781.               │ NHS No.  :&         <   Want Vist or Con:&         │
  782.               │ Pat.reg  :&        &    Last Update     :&         │
  783.               │ Notes.Rec:&             List Size       :&         │
  784.               │ Tel      :&                                        │
  785.               │ Seen     :&       <                                │
  786.               │ New P Exm:& Attended                               │
  787.               └────────────────────────────────────────────────────┘
  788.                   F1-Help  F2-Recalls  Tab-Print Inf   Esc-Menu
  789.  
  790.  
  791.  
  792.  
  793. \
  794. PATIENT.NAME
  795. ADDRESS1
  796. AREA
  797. POSTCODE
  798. DATE.OF.BIRTH
  799. MARITAL.STATUS
  800. SEX
  801. DISPENSING
  802. AGE
  803. DOCTOR
  804. SENT_FOR
  805. NHS.NUM
  806. VISIT
  807. PAT.REG
  808. PAT_FLAG
  809. LAST.UPDATE
  810. NOTES.REC
  811. RECORDS
  812. TELEPHONE
  813. SEEN
  814. SMOKER
  815. \
  816. \STCOD     
  817.  
  818.                             RECALLS ENTRY
  819.                ┌─────────────────────────────────────────┐
  820.                │    Patient:&                          < │
  821.                │    Address:&                            │
  822.                │    Area   :&                            │
  823.                │    Dob    :&                            │
  824.                │    Tel    :&                            │
  825.                │                                         │
  826.                │            Code  Date      Last Sm. SFHO│
  827.                │   Smears 1:&    :&        :&       <&   │
  828.                │   Contra 2:&    :&                      │
  829.                │   Immuns 3:&    :&           Immunise   └───────────┐
  830.                │   Diabts 4:&    :&         1.&                      │
  831.                │   Paeds  5:&    :&         2.&             Paeds    │
  832.                │   Thyrod 6:&    :&         3.&           1.&        │
  833.                │   Rp/Chk 7:&    :&         M.&           2.&        │
  834.                │   Asthma 8:&    :&         B.&           3.&        │
  835.                │   Bp     9:&    :&                       4.&        │
  836.                └─────────────────────────────────────────────────────┘
  837.                  F1 - Codes   F2 - Jump    F10 - Save     Esc - Menu
  838.  
  839.  
  840.  
  841. \
  842. PATIENT.NAME
  843. ADDRESS1
  844. AREA
  845. DATE.OF.BIRTH
  846. TELEPHONE
  847. COD[1]
  848. COD.D[1]
  849. SM_DATE
  850. WHERE
  851. COD[2]
  852. COD.D[2]
  853. COD[3]
  854. COD.D[3]
  855. COD[4]
  856. COD.D[4]
  857. IMDATE1
  858. COD[5]
  859. COD.D[5]
  860. IMDATE2
  861. COD[6]
  862. COD.D[6]
  863. IMDATE3
  864. PDATE1
  865. COD[7]
  866. COD.D[7]
  867. IMDATE4
  868. PDATE2
  869. COD[8]
  870. COD.D[8]
  871. IMDATE5
  872. PDATE3
  873. COD[9]
  874. COD.D[9]
  875. PDATE4
  876. \
  877. \R NEW     
  878. SUMMARY OF PATIENT DETAILS PRINTED ON:&          &                                                  &
  879. =================================================================================================================
  880. Name:         &                           &                      &                      NHS.NUM:&
  881. Date of Birth:&                           Mar/Sing:&    Reg.Dr:  &
  882. Last Seen:    &                           Sent for check up:&        Attended:&
  883. Recall Information.
  884. ===================
  885.           Last Smear     :&        Result:&    Next:&        Where:&
  886.           Contraception  :&          Type:&
  887.           Immunstion Due :&          Type:&
  888.           Diabetic Clinic:&          Type:&
  889.           Paediatric Surv:&           1st:&        2nd:&        3rd:&         4th:&
  890.           Thyroid clinic :&          Type:&
  891.           RP check       :&
  892.           Asthma clinic  :&
  893.           BP clinic      :&
  894. Immunisation
  895. ============
  896.           First Triple:&
  897.           Secnd Triple:&
  898.           Third Triple:&
  899.           MMR         :&
  900.           Booster     :&
  901. Repeat Prescribing.
  902. ==================
  903. &                              &        &          &                              (&  ) for &   days. Auto/on demand:&
  904. Clinic Information.
  905. ===================
  906. This patient last attended the &             clinic on   &
  907. This patient has not attended any clinics.
  908. Procedures
  909. ==========
  910. &        &                                        &   & & &
  911. &        &                                        &   & &
  912. &        &                                        &   & &
  913. &        &                                        &   & &
  914. &        &                                        &   & &
  915. &        &                                        &   & &
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926. \
  927. TD
  928. HEADING
  929. GPTEL
  930. PATIENT.NAME
  931. ADDRESS1
  932. AREA
  933. NHS.NUM
  934. DATE.OF.BIRTH
  935. MARITAL.STATUS
  936. TEMP_DOC
  937. SEEN
  938. SENT_FOR
  939. VISIT
  940. SM_DATE
  941. COD[1]
  942. COD.D[1]
  943. WHERE
  944. COD.D[2]
  945. COD[2]
  946. COD.D[3]
  947. COD[3]
  948. COD.D[4]
  949. COD[4]
  950. COD.D[5]
  951. TEMP1
  952. TEMP2
  953. TEMP3
  954. TEMP4
  955. COD.D[6]
  956. COD[6]
  957. COD.D[7]
  958. COD.D[8]
  959. COD.D[9]
  960. IMDATE1
  961. IMDATE2
  962. IMDATE3
  963. IMDATE4
  964. IMDATE5
  965. MEDICATION
  966. DOSE
  967. QUANTITY
  968. DIRECTIONS
  969. RP.DISP.QTY
  970. RP.DAYS.SUPPLY
  971. AUTO.ON.DEMAND
  972. MEM_ALPHA
  973. CHECK_DATE
  974. PROC_DATE[1]
  975. PROC[1]
  976. PROC_OP[1]
  977. PROC_DOC[1]
  978. PROC_DONE[1]
  979. PROC_UP
  980. PROC_DATE[2]
  981. PROC[2]
  982. PROC_OP[2]
  983. PROC_DOC[2]
  984. PROC_DONE[2]
  985. PROC_DATE[3]
  986. PROC[3]
  987. PROC_OP[3]
  988. PROC_DOC[3]
  989. PROC_DONE[3]
  990. PROC_DATE[4]
  991. PROC[4]
  992. PROC_OP[4]
  993. PROC_DOC[4]
  994. PROC_DONE[4]
  995. PROC_DATE[5]
  996. PROC[5]
  997. PROC_OP[5]
  998. PROC_DOC[5]
  999. PROC_DONE[5]
  1000. PROC_DATE[6]
  1001. PROC[6]
  1002. PROC_OP[6]
  1003. PROC_DOC[6]
  1004. PROC_DONE[6]
  1005. \
  1006. \STNEW1    
  1007.          Name:&
  1008.               &
  1009.               &
  1010.               &
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031. \
  1032. PATIENT.NAME
  1033. ADDRESS1
  1034. AREA
  1035. DATE.OF.BIRTH
  1036. \
  1037.